Traditionally, users operated software on local devices to achieve particular functions. With the increasing prevalence of high-speed communications networks, more users are accessing services hosted remotely on servers, rather than running software locally.